草庐IT

python - 在函数属性中访问 self

全部标签

Ruby:使用 self 关键字从内部调用私有(private)方法

classMyClassdeftestputsmy_idputsself.my_idendprivatedefmy_id115endendm=MyClass.newm.test此脚本产生输出:115priv.rb:4:in`test':privatemethod`my_id'calledfor#(NoMethodError)frompriv.rb:15:in`'使用self关键字和不使用关键字从内部调用方法有什么区别?根据我的Delphi和C#经验:没有区别,self可以用来避免与局部变量的名称冲突,表示我想调用实例函数或引用实例变量. 最佳答案

ruby - ruby 中 groovy 的链式属性是否有等效的 null 预防?

常规:如果有my_object->访问'name'并大写my_object?.name?.capitalize()对于ruby​​来说,避免nil对象访问属性的等效项是什么?谢谢 最佳答案 这适用于Rails:my_object.try(:name).try(:capitalize)如果你想让它在Ruby中工作,你必须像这样扩展Object:classObject###@person?@person.name:nil#vs#@person.try(:name)deftry(method)sendmethodifrespond_to?

ruby - 如何在请求范围之外访问 Sinatra 的记录器

似乎Sinatra的记录器只能在请求处理程序中使用(参见https://github.com/sinatra/sinatra#logging),但是如果我想在其他地方使用记录器怎么办,例如在辅助方法或配置Hook中?Sinatra记录器是否可以通过其他方式使用? 最佳答案 Thedocs给出一些关于范围的示例,但是您可以在helperblock中定义的方法中看到logger帮助程序,因为帮助程序block具有Application范围。在configure中它不可用,但我倾向于做的是设置我自己的日志记录,在rackup文件中作为常量

ruby - Ruby 真的可以用作函数式语言吗?

Ruby真的可以用作函数式语言吗?有哪些好的教程可以教授该语言的这一方面?注意:我真的想使用并坚持使用Ruby作为我的主要语言,所以我现在对转换为YAFL(另一种函数式语言)不感兴趣。我对Ruby的功能方面相对于标准功能语言基线的表现非常感兴趣。谢谢。 最佳答案 是的......有点。Ruby缺乏合理的结构来强制实现不变性。(Object#freeze不算)不变性确实是函数式语言的基石。此外,Ruby的核心库高度面向命令式设计。它的Array和Hash类本质上都是可变的,甚至String也有使非不可变的方法(例如gsub!)。具有讽

ruby-on-rails - 将散列作为函数参数处理

我正在使用RubyonRails3,我正在尝试将散列作为函数参数进行处理。例如,如果我这样声明一个函数:deffunction_name(options={})...end我想向function_name传递一个类似的散列{"key1"=>"value_1","key2"=>"value2","..."=>"..."}然后在函数内部使用它。什么是最佳\常见(Rails)方法?P.S.:我在某处看到了extract_option!方法,但我不知道在哪里可以找到一些文档,也不知道我是否需要这些文档才能实现我的目标。 最佳答案 只需使用您

ruby-on-rails - 如何在中间件中设置一个可在我的所有应用程序中访问的变量?

我正在使用RubyonRails3,我正在尝试使用中间件来设置一个变量@variable_name,以便稍后在Controller中访问。比如我的中间件是classAuthdefinitialize(app)@app=appenddefcall(env)@account||=Account.find(1)@app.call(env)endend上面的代码正确设置了@account变量,但在我的应用程序中(在Controller、模型、View等中)不可用。那么,我怎样才能做到这一点?我看到了thisanswer这是一种做我需要的方法,但我希望@account变量“可直接访问”。也就是说

Ruby - 动态地向类添加属性(在运行时)

这个问题在这里已经有了答案:addingattributestoaRubyobjectdynamically(6个答案)关闭8年前。我正在寻找一种在运行时或更好的方式向我已定义的类添加属性的方法:classClientattr_accessor:login,:passworddefinitializeargs={}self.login=args[:login]self.password=args[:password]endend但是,我有这个散列{:swift_bic=>"XXXX",:account_name=>"XXXX",:id=>"123",:iban=>"XXXX"}我希望这

ruby - 通过类属性的部分匹配获取所有元素

我正在尝试使用Nokogiri显示来自URL的结果。(本质上是抓取一个URL)。我有一些HTML类似于:MattyMatthewSuzie所以我需要找到所有以单词“matt”开头的元素。我需要做的是保存元素的值和元素名称,以便下次我可以引用它..所以我需要捕获"Matty"and"""Matthew"and""我还没有想出如何捕获元素HTML,但这是我目前拥有的元素(它不起作用!)doc=Nokogiri::HTML(open(url))tmp=""doc.xpath("[class*=matt").eachdo|item|tmp+=item.textend@testy2=tmp

ruby-on-rails - 使用 Paperclip 拒绝访问 S3

我正在熟悉使用带有ruby​​的S3将文件上传到AmazonWebService。我最近遇到了以下错误:AWS::S3::Errors::AccessDeniedAccessDenied。在谷歌上四处寻找,我发现thispost关于错误。它声称存储桶策略不足以允许通过网络应用程序进行访问,并且还必须为用户提供“管理员访问权限”。我已经尝试过了,它工作正常,但我觉得这表明我没有做对,因为我读过的任何其他文档都没有提到管理员访问权限。我正在使用aws-sdkgem。谁能权衡是否需要管理员访问权限?非常感谢! 最佳答案 现有的答案都没有真

ruby-on-rails - 在 respond_with 散列中包含一个虚拟属性

我试图在respond_toJSON散列中包含一个虚拟属性/方法。模型(employee.rb)attr_reader:my_methoddefmy_methodreturn"foobar"endController(employees_controller.rb)respond_to:jsondefindex@employees=Employee.allrespond_with(:data=>@employees,:total=>Employee.all.count)end重要的是,我将“data”作为“employees”集合的json根,并将“total”包含在散列中。这很好用,